This invention relates in general to techniques for testing electrical devices such as integrated circuits and, more particularly, to a method and apparatus for utilizing a single test definition in a tester independent language with multiple different test systems.
With respect to electrical devices such as integrated circuits, the manufacturer needs to be able to test the circuits before they are shipped. A variety of testers suitable for testing these circuits are commercially available. In fact, the integrated circuit manufacturer may already own several testers, which are different from each other, but which are each capable of testing the circuits in question. It is frequently desirable to have the freedom to be able to test a given type of integrated circuit on any one of these testers, but there are some problems involved in trying to do this efficiently and inexpensively.
One such problem is that each tester may have a significantly different operator interface. Consequently, in order for a given operator to be able to test a particular device using any tester, each operator must be trained on how to use each tester. The time and expense involved in separate training for each tester can be significant, especially where there are several different types of testers. A further problem is that the various testers each need the test definition for a given device to be expressed in a format proprietary to that particular tester. As a result, implementing the necessary test definition for a given circuit on each of several different testers may involve a substantial amount of work for each tester. Further, where operators need to be able to test a given device on any of several testers, the operators may have to be trained on each of several different test definitions for that device, which involves substantial time and effort.
One known approach for addressing this situation is to discard in its entirety the proprietary software delivered with each tester, and then replace it with new custom software, such that a single common test definition written in a tester independent language will be recognized by the custom software prepared for each of the testers. This simplifies matters in terms of preparing the test definition itself, because only a single test definition needs to be prepared in the tester independent language. However, preparing the necessary custom software for each tester can be prohibitively complex and expensive. This is due in part to the fact that, in writing the new software for each tester, it is complex and expensive to generate the portion of the new software which will interface reliably and accurately with all of the hardware interface circuitry that is an integral part of each tester, and which is different on each tester. Thus, in a sense, this alternative approach simply replaces one set of problems with another set of problems.
A further consideration is that a given integrated circuit may be capable of use in different products, and there may be a need to test the integrated circuit differently, depending on the particular product in which it will ultimately be used. In this regard, the circuit may be made from circuit building blocks known as cells, and there may be a set of default test parameters for a given cell, but in the case of a particular circuit which uses that cell it may be desirable to substitute a different set of test parameters for the default set when generating the portion of the test definition which relates to that cell. It is therefore desirable to have a way to automatically determine which test parameters are to be used in developing a particular test definition. Yet another consideration is that some of the test parameters may be changed after they have been used to generate a particular test definition, but a known tester will not take the update into account unless the entire test definition is regenerated or manually modified.
From the foregoing, it may be appreciated that a need has arisen for a method and apparatus for testing circuits on any of multiple testers which are different but which each recognize a common test definition, without developing entirely new software for each tester on a custom basis.
According to the present invention, in order to address this need, a method and apparatus are provided for operating a test system that includes a hardware interface adapted to be releasably coupled to a predetermined device under test, and that includes a processor which is operatively coupled to the hardware interface. More particularly, this method and apparatus involve: preparing a test definition which defines a test procedure for the predetermined device; executing on the processor a test application program which is customized for the test system and which includes a software interface for facilitating communication between the processor and the hardware interface; compiling an interpreter program using a compiler which is customized to complement the test application program and which is capable of generating code that is executable by the processor and that interacts directly with the test application program; and executing on the processor the interpreter program, the interpreter program being operative to interpret the test definition and being operative in response to the test definition to control the hardware interface through the test application program.